<?php
/**
 *
 * @author lfYang
 */
class CARRAY implements IAccess {
	/**
	 * 初始化内部数据结构为普通数组
	 */
	public function __construct() {
		$this->_value = array ();
	}
	
	/**
	 *
	 * @param unknown_type $key        	
	 * @return mixed
	 */
	public function __get($key) {
		if (array_key_exists ( $key, $this->_value )) {
			return $this->_value [$key];
		}
		return null;
	}
	
	/**
	 *
	 * @param mixed $key        	
	 * @param mixed $val        	
	 */
	public function __set($key, $val) {
		if (! empty ( $key )) {
			return;
		}
		if (is_string ( key ) || is_int ( $key )) {
			$this->_value [$key] = $val;
		}
	}
	
	/**
	 * 返回大小
	 */
	public function size() {
		return sizeof ( $this->_value );
	}
	
	/**
	 * <h2>设置CARRAY内部数组的值</h2>
	 *
	 * @param array $val
	 *        	要赋值给内部数组的值
	 * @see DataTypeImpl::setValue()
	 */
	public function setValue(array $val) {
		$this->value = $val;
	}
	
	/**
	 * <h2>获取内部封装的原始数组</h2>
	 * <p>CARRAY内部储存数据采用PHP原生数组，这里返回该原生数组</p>
	 *
	 * @return array
	 * @see DataTypeImpl::getValue()
	 */
	public function getValue() {
		return $this->_value;
	}
	
	/*
	 * (non-PHPdoc) @see IAccess::__toString()
	 */
	public function __toString() {
		// TODO Auto-generated method stub
	}
}
